import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Date;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.Border;


public class FenetreCoupe extends JFrame {
	public JFrame FenetreCoupe= new JFrame();
	public PanneauCoupe pano=new PanneauCoupe(FenetreCoupe);
	public JPanel panneauCoupe1=new JPanel();
	public JPanel panneauCoupe2=new JPanel();
	private JButton boutonCoupe1= new JButton("Stop !");
	private JButton boutonCoupe2= new JButton("Coupe aleatoire");
	public Monthread monthread= new Monthread(pano);
	public Thread thread1=new Thread(monthread);
	public Panneau panneauJeu;
	
	public int ResultatCoupe;
	
	public FenetreCoupe(Panneau panneauGame){
		panneauJeu=panneauGame;
		this.setTitle("Coupe");
		this.setSize(300,270);
		this.setLocationRelativeTo(null); 

		panneauCoupe1.setLayout(null);
		panneauCoupe1.setPreferredSize(new Dimension(300,200));
		panneauCoupe1.setBackground(new Color(97,156,92));
		panneauCoupe1.setBounds(0,0,300,240);

		
		panneauCoupe2.setBounds(0, 0,300,40);
		panneauCoupe2.setBackground(new Color(97,156,92));
		
		boutonCoupe1.setBounds(0,0,0,0);
		boutonCoupe2.setBounds(0,150,0,0);
		
		panneauCoupe2.add(boutonCoupe1);
		panneauCoupe2.add(boutonCoupe2);
		 
		
		pano.setPreferredSize(new Dimension(300,200));
		pano.setBounds(0,40,300,200);
		pano.setBackground(new Color(97,156,92));
	
		panneauCoupe1.add(pano);
		panneauCoupe1.add(panneauCoupe2);

		setContentPane(panneauCoupe1);
		this.setVisible(true);
		
		/*Si on appui sur Stop*/
		boutonCoupe1.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent e) {
				panneauCoupe2.paint(panneauCoupe2.getGraphics());
				System.out.println("STOP !");
				thread1.stop();
				ResultatCoupe=(monthread.Mypano.posY-45)/2;
				
				panneauJeu.getJeuBelote().nombre_alea_coupe=ResultatCoupe;
				
				System.out.println("Position = "+(monthread.Mypano.posY-45)/2);
				panneauJeu.getJeuBelote().coupe_jeu(true);
				
			}
		});
		 /*Si on appui sur alatoire*/
		boutonCoupe2.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent e) {
				panneauCoupe2.paint(panneauCoupe2.getGraphics());
				System.out.println("STOP !");
				thread1.stop();
				
				panneauJeu.getJeuBelote().coupe_jeu(false);
				
			}
		});
		
		thread1.start();

}    


}

class Monthread implements Runnable{
	public PanneauCoupe Mypano;
	
	 public Monthread(PanneauCoupe pano1) {
		 Mypano=pano1;

		 
	 }

	public void run() {
		int i;
		boolean descente=true;
		int nb_alea;
		Date date = new Date(System.currentTimeMillis());
		long time = date.getTime();
		Random r = new Random(time);
		
		while(true){
			/*attente aleatoire */
			nb_alea=r.nextInt();
			if(nb_alea<0) nb_alea=nb_alea*-1;
			/********************/
			if(Mypano.posY<64||Mypano.posY>80) nb_alea=nb_alea%5;
			else nb_alea=nb_alea%15;
			descente=deplacement(descente,nb_alea);
		}
	}
	
	public boolean deplacement(boolean descente, int time_sleep){
		if(Mypano.posY==107&&descente){
			descente=false;
		}
		if(Mypano.posY==45 && !descente){descente=true;}
			
		if(descente)
			Mypano.posY++;
		else
			Mypano.posY--;
		
		try {
			Thread.sleep(time_sleep);			
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		Mypano.paintComponent(Mypano.getGraphics());
		return descente;
	}
	 
 }
 